"""
- Asynchronous programming allows concurrent execution of multiple tasks
- It uses coroutines and the async/await syntax to handle asynchronous operations
- Async functions can be paused and resumed, enabling efficient use of resources
"""

import asyncio

async def my_async_function():
    # Simulate an asynchronous operation
    result = await asyncio.sleep(1)
    print("Async operation result:", result)

    # Another asynchronous operation
    await asyncio.sleep(0.5)
    print("Another async operation completed")

async def main():
    # Call the asynchronous function multiple times concurrently
    await asyncio.gather(my_async_function(), my_async_function())

# Run the asynchronous code
asyncio.run(main())
